The present invention generally relates to a computer system. More particularly, the invention is concerned with a method and a system for controlling parallel execution of jobs and/or job steps, which method and system are advantageously and profitably suited for execution of jobs including job steps executable in parallel.
With the conventional techniques directed to reexecution of a job (i.e., restart of execution of a job after abnormal interruption thereof), such arrangement is adopted that a job execution which ended at a given job step due to occurrence of abnormality in that job step or for other reason can be restarted from that given job step, as is disclosed, for example, in JP-A-63-211033. More specifically, upon reexecution of a job ended abnormally, the job is reregistered, where-upon on the basis of information indicating to which step the job execution has been completed, the job is executed while skipping the job steps to one preceding to the job step at which abnormality occurred, to thereby allow the job to be reexecuted, starting from that preceding step.
On the other hand, in conjunction with parallel execution of job steps, such a system or scheme has already been proposed in conjunction with a job composed of a plurality of job steps that information of designation indicating whether or not a given job step can be executed in parallel with other job step belonging to the same job is affixed to a relevant control statement commanding the job step execution, to thereby allow a plurality of job steps to be executed concurrently, as is disclosed, for example, in JP-A-6-202881.
The first mentioned job reexecution technique (JP-A-63-211033) can certainly ensure the function for recovering or restoring the job whose execution ended with abnormality. However, no consideration is paid to reduction or decrease of the time required for execution of the job. Moreover, with this conventional technique, it is impossible to execute a plurality of same job steps concurrently in parallel with one another, giving rise to another problem.
On the other hand, in the case of the second mentioned prior art (JP-A-6-202881), parallel execution can be performed only for those job steps which differ from one another and which belong to a same job, and no consideration is paid to parallel execution of a plurality of same job steps, presenting thus a problem that the time taken for execution of job step can not be shortened.
In the light of the state of the art reviewed above, it is a primary object of the present invention to provide a method and a system for controlling parallel execution of jobs by executing a plurality of jobs of a same content to thereby allow a plurality of same job steps belonging to a same job to be executed in parallel with a view to shortening the time required for execution of the job step(s).
In general, in order to make it possible to shorten the time taken for execution of job steps by executing a plurality of same job steps, it is required that input data to be available for the relevant job step can be divided and that no requirement is imposed concerning the sequential relation among the processings of the input data.
It is a second object of the present invention to provide a method and a system for controlling parallel execution which allow a given job step belonging to a job composed of plural job steps to be executed in parallel with other job step belonging to the same job as the aforementioned given job step with a view to reducing the time taken for execution of the job.
In view of the first object mentioned above, it is taught according to a first aspect of the present invention that by taking advantage of the job reexecuting technique known heretofore, as mentioned above, a same job as a one which is being executed is registered for execution during execution of that one job, not upon occurrence of abnormality, for executing these same jobs in parallel to thereby allow same job steps belonging to one and the same job to be executed in parallel.
In view of the second object of the invention mentioned previously, it is proposed according to a second aspect of the present invention that a plurality of same jobs (i.e., jobs of same content) are executed in parallel, wherein in the execution of a first one of the same jobs, a given step is skipped without executing it for thereby allowing a succeeding job step to be executed, while in a second one of the same jobs being executed in parallel with the first job, the given job step of the first job skipped from execution is executed. Thus, parallel execution of different job steps belonging to a same job can be achieved.
In a preferred mode for executing the invention, job control statements are analyzed or interpreted by a job control language translating module, to thereby decide whether or not a certain number of same jobs are to be executed in parallel and whether or not execution of certain job step(s) is to be skipped.
For the registration of jobs, there is provided a job registration processing module as a part of a job execution managing module, wherein for a job which is destined for parallel execution, the job is again registered by the job registration processing module.
In still another preferred mode for carrying out the invention, a step execution managing module is provided for skipping a given job step without executing it, when skipping of that given job step is indicated or commanded in a relevant control statement.
The above and other objects, features and attendant advantages of the present invention will more easily be understood by reading the following description of the preferred embodiments thereof taken, only by way of example, in conjunction with the accompanying drawings.